package br.com.leilao.dao;


import java.util.ArrayList;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.leilao.config.HibernateUtil;
import br.com.leilao.filter.EditalFilter;
import br.com.leilao.model.Edital;
import br.com.leilao.model.Lance;
import br.com.leilao.model.Usuario;
import br.com.leilao.util.ConstantsEditao;
import br.com.leilao.util.DateUtil;
import br.com.leilao.util.DynamicQuery;

public class LanceDAO extends GenericDAO<Lance> {
	
	private Session sessao;

	public ArrayList<Lance> getLancesQueOCaraVenceu(Usuario Usuario)
			throws Exception {
		ArrayList<Lance> lancesVencedores = new ArrayList<>();

		EditalDAO dao = new EditalDAO();

		EditalFilter filter = new EditalFilter();
		filter.setEstado(ConstantsEditao.FECHADO);
		ArrayList<Edital> editais = dao.findAll(filter);

		for (Edital edital : editais) {
			Lance lance = dao.getLanceVencedorEdital(edital.getIdEdital());

			if (lance != null
					&& lance.getUsuario().getIdUsuario() == Usuario
							.getIdUsuario()) {
				lancesVencedores.add(lance);
			}
		}

		return lancesVencedores;
	}
	
	
	@SuppressWarnings("unchecked")
	public ArrayList<Lance> getTodos(int idUsuario) {
		Query query = getSession().getNamedQuery("getTodos");

		query.setInteger("idUsuario", idUsuario);
		
		ArrayList<Lance> x = (ArrayList<Lance>) query.list();
		
		System.out.println(x==null);
		
		return x;
	}
	
	
		
}
